The system includes an XML file which provides a template for all server and base rule error messages. You can customize this file if you use custom rules or if you want to modify the description of the problem. The file includes error descriptions, possible causes, and remedies in US English.
You can find examples of how to use this XML file in the Docupresentment samples for ASP and JSP pages.
CGI clients cannot use this file and must instead use HTML templates.
Here is an example of the XML file:
<?xml version="1.0" encoding="UTF-8"?>
<ERRORCODES>
<CODE VALUE="ATC0001">
<PARAMETERS>
<VARIABLE/>
</PARAMETERS>
<SEVERITY>Error</SEVERITY>
<CATEGORY>Server configuration</CATEGORY>
<DESCRIPTION>Can not add variable <PARAMETER NAME="VARIABLE">
//ROWSET[@NAME="ATC0001"]//VAR[@NAME="VARIABLE"]</PARAMETER> to the attachment</DESCRIPTION>
<CAUSE>Attachment size is larger than supported by queuing system
<REMEDY>Reduce the size of the attachment. Example, if search request returns too many matches redefine search criteria so number of matches is reduced.
</REMEDY>
</CAUSE>
<CAUSE>Server is running low on memory
<REMEDY>Restart server. If problem persists, report it to tech support</REMEDY>
</CAUSE>
<CAUSE>Memory was corrupted by ill-behaved rule
<REMEDY>If problem persists, report it to tech support</REMEDY>
</CAUSE>
</CODE>
<CODE VALUE="ATC0002">
<PARAMETERS>
<APINAME/>
</PARAMETERS>
<SEVERITY>Error</SEVERITY>
<DESCRIPTION>The virtual memory management API <PARAMETER NAME="APINAME">
//ROWSET[@NAME="ATC0002"]//VAR[@NAME="APINAME"]</PARAMETER> failed</DESCRIPTION>
<CAUSE>Memory corruption on the server due to ill-behaved rules.
<REMEDY>If problem persists, report it to tech support</REMEDY>
</CAUSE>
</CODE>
<CODE VALUE="DPR0009">
<PARAMETERS/>
<SEVERITY>Warning</SEVERITY>
<CATEGORY>User error</CATEGORY>
<DESCRIPTION>No matches were found for the specified search criteria</DESCRIPTION>
<CAUSE>Search criteria specified by the user resulted in no matches found
<REMEDY>Specify different search criteria</REMEDY>
</CAUSE>
</CODE>
</ERRORCODES>
Usually the client submits a request to IDS and gets results. One of the attachment variables returned is RESULTS. This value contains the value SUCCESS or the error code.
Since you can have multiple errors, be sure to check RESULTS for the value SUCCESS. If it is not SUCCESS, the client code should examine the returned results for all error messages, not just the code provided in RESULTS attachment variable. In other words, the attachment variable RESULTS should be considered as a binary indication of successful transaction — whether it was successful or not.
Here is a sample IDS message with an error. This layout shows row set changes, available in IDS 1.8 and higher. Do not compare this layout with messages created by the older versions of IDS.
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope">
<SOAP-ENV:Body>
<DSIMSG VERSION="100.018.0">
<CTLBLOCK>
<UNIQUE_ID>9F2AE2BB6609450887779A836D90D390</UNIQUE_ID>
<REQTYPE>RPD</REQTYPE>
<USERID>USERNAME</USERID>
</CTLBLOCK>
<MSGVARS>
<ROWSET NAME="ERRORS">
<ROW NUM="1">
<VAR NAME="CODE">ATC0001</VAR>
</ROW>
</ROWSET>
<ROWSET NAME="ATC0001">
<ROW NUM="1">
<VAR NAME="VARIABLE">FILENAME</VAR>
</ROW>
</ROWSET>
<VAR NAME="RESULTS">ATC0001</VAR>
</MSGVARS>
</DSIMSG>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
The reporting of C exceptions while running a rule has includes the following information:
Before the restart, IDS reports the type of C Exception and the rule that triggered the exception. This is reported through normal IDS logging techniques. Here is an example:
ERROR [BLP-0]: 2005-06-30 14:54:23,703 BusinessLogicProcessor The thread tried to read from or write to a virtual address for which it does not have the appropriate access.
ERROR [BLP-0]: 2005-06-30 14:54:23,718 RequestDescription Rule 'tstw32.dll->TSTTestBlowUP' had an exception in Run Forward message.
After IDS restarts, it sends a message to the client program through the queues to report there was a problem. This is reported via the usual rowset/error message way of reporting errors. Here is an example:
Result returned back from server
Message variables
RESULTS=SRV0004
Rowsets
ERRORS
Row 1
CODE=SRV0004
SRV0004
Row 1
CURMSG=Server failed to process the request <TSTLIB> due to a fatal error.
© Copyright 2016, Oracle and/or its affiliates. All rights reserved. Legal notices.